package com.easpeed.elevator.udp;

public class FloatArrayPool {
    private final float[][] pool; // 存储字节数组的池
    private int currentIndex; // 当前可用的数组索引

    public FloatArrayPool(int size, int arraySize) {
        pool = new float[size][arraySize]; // 初始化池
        currentIndex = 0; // 初始索引为0
    }

    // 从池中获取一个字节数组
    public synchronized float[] acquire() {
        if (pool.length == 0) {
            throw new IllegalStateException("No byte arrays available in the pool.");
        }

        float[] array = pool[currentIndex];
        currentIndex = (currentIndex + 1) % pool.length; // 更新索引，循环使用
        return array;
    }

    // 可选：返回字节数组到池中（如果需要清理）
    public synchronized void release(byte[] array) {
        // 这里可以添加逻辑来处理释放的数组
        // 例如，可以清空数组内容等
    }

    public int getSize() {
        return pool.length;
    }
}
